#include <bits/stdc++.h>
using namespace std;
int binarySearch(vector<int> a,int begin,int end,int target){
  while(begin<=end){ //为什么begin<=end 必须加=   因为 {2} 找2 如果不是begin<=end 直接不会查找
  //我们必须保证begin和end交集不为空就一定需要被审查。（包括begin=end的一个元素的情况）
    int mid = begin+(end-begin)/2;
    if (a[mid]>target) end = mid - 1;
    else if (a[mid]<target) begin = mid + 1;
    else return mid;
  }
  return -1;//退出说明没找到
}
vector<int> test = {1,2,4,7};
const int target = 4;
int main() {

  cout<<binarySearch(test,0,test.size()-1,target);
  return 0;
}